KC7WW's COLLECTION OF UTILITIES AND APPLICATION PACKAGE FOR THE EVM56002
------------------------------------------------------------------------
                 Version 3 - March 1996
                 -----------------------

This version of the package accompany the article in the August 1995 issue
of QEX:

     "Using the Motorola DSP56002EVM for Amateur Radio DSP".

The purpose of this package is intended to get you started developing 
amateur	radio applications with the DSP56002EVM. It assumes you have some
prior experience with the EVM56002, i.e., have assembled code and used the
debugger a little bit.

Please read the disclaimer provided with this note regarding the use of
the enclosed code examples.

                    --Acknowledgements--

The bulk of the more interesting applications are based on the work
of the Alef Null group. I acknowledge the efforts of Jarkko Vuori (OH2LNS), 
Kaj Wiik (OH6EH), and their associates,	for their excellent work. I am also 
most grateful for Jarkko Vuori's permission to port and post the Leonid 
monitor code for the EVM56K. 

I recommend that the documentation of the Alef Null project be obtained 
for reference purposes from jeeves.hut.fi. There are several components:
source, tools1, and doc. It contains an appropiate introduction to what 
DSP is and also discusses modem theory as applied to the various software
modules in the package. Makes for interesting reading.

Some exellent examples from Pawel Jalocha (SP9VRC) are included
with his kind permission. Thanks Pawel for sharing your fine workmanship!
I can recommend all the modems, denoiser/filters, and FSKIFACE works
wonderfully with JVFAX7.1 (another outstanding program).

I also include a contribution by Danie, ZS6AWK - I am sure that this 
will also be appreciated by others.


                   --Radio interface--
-------------------------------------------------------------------------
NOTE: Using this interface to your EVM requires NO modifications
      to your EVM.

         Please read the disclaimer at the end of this note.
-------------------------------------------------------------------------

I included the schematic of my radio interface for the EVM56K. This
schematic is basically adapted from the DSP4 and simplified to the
bare essentials. The reader is referred to the DSP4 documentation for
further details.

Also note that if you want to use the interface schematic, that a few 
jumpers need to be changed:

1) J8 should have all four jumpers in standard mode, i.e., parallel
   to the short edge of the PCB.

2) J10 should have PC0 and PC1 jumpers installed.


Just a note about FLASH EPROM: I have used the Atmel chip and have had
good luck with it. To program the FLASH, first load your code using the 
debugger, then load the FLASH program supplied with the kit. Finally 
execute the FLASH program. The start address is given in the FLASH program,
just look at the source code. When all is done, remove the debugger and 
push the "reset" button. The DSP will then boot from the FLASH EPROM. 


	   --EVM and DSP4--

The EVM56002 and the DSPCARD4 are very similar in many respects -
deceptive differences, however will puzzle the beginner and expert alike.
When porting the code between these two platforms be mainly aware of
the following:

1). The DSP4 has seperate spaces for P, X, and Y - the EVM56K only has
P/X, and Y. Be careful with X memory allocation. Also be aware of tricks
that use a common address pointer that addresses both X and Y at the
same time. The DSP4 software examples occasionally uses this method.

2). There is only one audio source connected on the EVM, i.e., "MIKE"
input. The DSP4 allows a selection. Thus make sure that any code that
you port has "MIKE" selected. You may optionally put the 20dB pad in
if you need more gain at the cost of poorer audio quality. Also note
that there is only one crystal on the CODEC, i.e. 24.5MHz, and it is
connected to the WRONG crystal port, i.e. where the 16MHz crystal is
supposed to be. This is no problem, though when you initialize th
CODEC, make sure it looks for the 16MHz crystal - the 24MHz crystal
is then selected and all is fine.

3). To use the Leonid monitor on the EVM, first load "BIOS", then your
application(s) and finally "go 0" to start the code. If you plan to
use the "SPY" program, or any other program that use the SCI, for that matter,
you need to switch to the "terminal" port on the EVM as all communications 
using the EVM's SCI port is through that port.

4) Please look at the code for BIOS.ASM before using it:

	a) You may wish to change the SCI baudrate to another value
           than the 9600 baud that I used.

	b) For a faster EVM clock, enable the speed you wish. I have
           been using 40 MHz to maintain compatibility between several
           old and new systems. My EVM will run quite happily
           at 80 MHz.

This goes for the 1200 baud FSK modem as well. In that case you also
need to make sure that you use a program that can talk in "KISS" mode, i.e.
something like NOS will do just fine.

Note there are two experimental 1200 baud modems in the package. The OH2LNS 
version, FSK.ASM, is somewhat sensitive to audio input level - set this
not more than 180 mV. Pawel's modem, FSK1200.ASM, is fairly insensitive
to the input level. 

4). If you are not a NOS guru, the following commands will let you
monitor raw traffic (make sure you have the appropiate serial port,
attached in your "autoexec.nos" file).

trace ax0 211    (then push F9, I assume "ax0" is your ax25 device)

5). When NOS is used, ensure that NOS and the EVM is communicating at the
same baudrate. Please check the baudrate that Leonid is using by the
setting in "baud" (line 182) - set it to the required rate and re-assemble
BIOS.ASM.


6). You must use my version of the "leonid.asm" include file when building
programs that use the Alef Null Leonid monitor calls.

            --Other Hints & Kinks--

1) The EVM has only provision for using MIC input - LINE inputs are
grounded through a capacitor. If you wish, these LINE inputs can be
enabled, though this modification should only be attempted by a skilled
person. You will need to work under good lighting and use a magifier glass
to inspect your work. This one voids your warranty - beware!

step 1). Referring to the CODEC: find the track running from pin 18,
towards C207. Cut it close to C207. The LINE inputs are now disconnected
from ground.

step 2). Turn the EVM upside down and find the feed-thru tracks from pins
15 and 16. Between these two feed-thru holes, is a "L" shaped short track
that feeds through to pin 16. This "L"-shaped track ties LINEL and LINER
together - cut it. Now LINEL and LINER are independant.

step 3). If you wish to connect LINEL and LINER to an independant input
conditioning circuit, you may wish to use the feed-though holes on
the bottom of the EVM for solder pads to gain access to LINER (pin 16) and
LINEL (pin 18). I choose to bridge these pads so that MICR/LINER and
MIRL/LINEL becomes connected. 

I did this modification only to maintain software compatibility with some
programs the use LINE as input. OTHERWISE IT IS BEST TO LEAVE THIS ALONE.
 

       --Applications--

These are native EVM56002 applications (KC7WW)
-----------------------------------------------
EVMPCB   PLT  -- KC7WW's EVM radio interface schematic in HPGL format
EVMPCB   SCH  -- KC7WW's EVM radio interface schematic in ORCAD format

RTTY     ASM  -- KC7WW's HF RTTY/AMTOR/Pactor (use with PCTOR)
RCOEFFS  ASM  -- filter coefficients for above
TTYCD    ASM  -- CODEC support for RTTY modem

INOUT    ASM  -- CODEC talk-thru test

BOOT     ZIP  -- This was a contributed program by Chris Hanna
                 Please read the comment carefully before using

FLASH    ASM  -- Some fixes to the released programmer, but also
                 please read the comments before using.

These applications are based on the LEONID kernel port
--------------------------------------------------------
BIOS     ASM  -- The source code for the ported Leonid kernel
BIOS     CLD  -- loadable object
INTEQULC ASM  -- essential include files
IOEQULC  ASM
LEONID   ASM  -- KC7WW's ported Leonid include file

TALK     ASM  -- KC7WW's CODEC talk-thru test
FSK      ASM  -- Jarkko's 1200 baud Bell 202 modem for the EVM
BANDPASS ASM  -- Jarkko's narrow CW filter
COEFF    ASM  -- filter coefficients for above

QRMQRN   ASM  -- a slightly modified version of Jarkko's LMS denoiser

Pawel's (SP9VRC) programs
--------------------------
CORELFLT ASM  -- Correlation-based CW denoiser
FFT-CUT  ASM  -- Denoiser based on the spectral subtraction method
NEWQPSK  ASM  -- Experimental OFDM modem (15-parallel tones)
FSK1200  ASM  -- 1200 baud packet modem
FSKIFACE ASM  -- FSK interface for FAX, HF FSK etc.
TXTEST   ASM  -- Checking transmitter filter response

WEAKSIG  ZIP  -- Real-time FFT signal analyser for weak signal detection
                 Great set of programs for real-time FFT displays.

Danie's (ZS6AWK) programs
--------------------------
NOS      AWK  -- Some notes on EVM usage and NOS hints
EVM56K0  ZIP  -- Interface layout in Tango format 
EVM56K0  ZIP  -- Interface schematic in ORCAD format
TSTSCI   ASM  -- Test code for SCI interface

(NOS) a collection of notes for running the EVM with NOS
--------------------------------------------------------
README        -- suggestions for running NOS with modem programs FSK.ASM,
                 FSK1200, NEWQPSK.ASM
AUTOEXEC NOS  -- KC7WW's setup for the EVM 

-----------------------------------------------------------------------------


I trust that this collection of examples is of use. Please let
the authors know that you are using their software and that you
appreciate their indivdual efforts. The main thing is - please 
contribute your own efforts so that we all can grow in our experiences.

73's

--Johan Forrer
   (KC7WW)

<forrerJ@ucs.orst.edu>
-----------------------------------------------------------------------------

                           DISCLAIMER NOTICE
                           -----------------
The code, schematics, and examples in this package are provided for personal 
use without any warranty on an "as is" basis - "what you see is what you 
get". The code examples or schematics may not be used for resale or in any 
commercial or government applications without written concent of the 
author(s). The author and authors of the included software examples are not 
liable for any mishaps due to the use and/or abuse of this software package. 

-----------------------------------------------------------------------------
